The present invention relates to feedback controllers for controlling machines, and in particular, to a technique for providing non-linear feedback control through a simple adaptation of a linear, proportional/integral feedback controller.
In feedback controllers, a command signal (e.g., a desired velocity) is compared to a process signal (e.g., a measured velocity) to produce an error signal. This error signal is used to generate a control signal, such as voltage to a motor or a hydraulic valve, which adjusts the velocity appropriately.
In a simple control system, the control signal may be proportional to the error signal. Thus, as the magnitude of the error signal increases so does the magnitude of the control signal. More sophisticated control systems are possible including proportional/integral (PI) control where the control signal is the sum of a proportional part (a constant factor K.sub.p times the error signal) plus an integral part (a constant factor K.sub.j times the error signal). The integral factor augments the proportional factor by providing some "memory" of the historical error to provide a suitable offset counteracting that error. For example in a motor controller, the integral term may compensate for a steady constant frictional resistance on the motor. A PI controller, by allowing the gain of the integral and proportional term to be separately adjusted, allows improved tuning of the controller. In a PI controller, the user need contend with only two variables K.sub.p and K.sub.j, and the setting of these two variables (tuning the control system) is relatively intuitive.
PI controllers are termed linear controllers because the control output is a linear function of the error signal. Linear controllers have the advantage of being easier to analyze mathematically. Nevertheless, linear controllers may not be optimal for all control situations.
Unfortunately, the introduction of non-linearity to a feedback controller substantially increases the complexity and difficulty of programming and tuning the controller. The introduction of non-linear terms can create unexpected instabilities in control for the inexperienced programmer and greatly increases the number of factors involved in tuning. What is needed is a non-linear controller that approaches the simplicity and robustness and intuitive nature of a linear PI controller.